package interfaces

import (
	"github.com/ce-exp/backend/mod/class/internal/entity"
	"github.com/tsingshaner/gin/shared"
)

type (
	ClassQuery interface {
		ByID(shared.ID) (*entity.Class, error)
		ByIDs([]shared.ID) ([]*entity.Class, error)
		ByTeacherID(shared.ID) ([]*entity.Class, error)
		ByCourseID(shared.ID) ([]*entity.Class, error)
	}

	ClassModify interface {
		Create(*entity.Class) error
		Update(*entity.Class) error
		Delete(shared.ID) error
	}

	StudentQuery interface {
		ByClassID(shared.ID) ([]*entity.Student, error)
	}

	StudentModify interface {
		Add(class, user shared.ID) error
		Remove(class, user shared.ID) error
	}
)
